<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>

<body>

  <!-- <script src="./00-MyPromise.js"></script> -->
  <script>
    // let p = new MyPromise((resolve, reject) => {
    //   resolve('cuifan')
    // })

    // p.then(c => {
    //   console.log(c);
    // })
    // let p = MyPromise.resolve(3)
    // p.then(value => {
    //   console.log(value);
    // })

    // let p = new MyPromise((resolve, reject) => {
    //   // resolve(1)
    //   reject(1)
    // })
    // let p1 = p.then(value => {
    //   console.log(value);
    //   return 2
    // }, (reason) => {
    //   console.log(reason);
    //   throw 4
    // })

    // let p2 = p1.then(value => {
    //   console.log(value);
    //   return MyPromise.resolve(3)
    // },)

    // p2.then(value => {
    //   console.log(value);
    // })

    // let p = new MyPromise((resolve, reject) => {
    //   // resolve(1)
    //   // throw 8888
    //   setTimeout(function() {
    //       resolve(123)
    //     }, 1000)
    //     // resolve(1)
    // })

    // // let p1 = p.then(value => {
    // //   console.log(value);
    // // })

    // // let p2 = p1.then(value => {
    // //   console.log(value);
    // // }, reason => {
    // //   console.log(reason);
    // // })
    // let p1 = p.then(value => {
    //   console.log(value);
    // })

    // let p = new MyPromise((resolve, reject) => {
    //   setTimeout(function() {
    //     // reject('reject')
    //     resolve('resolve')
    //   }, 1000)
    // })

    // p.then().then(value => {
    //   console.log(value);
    // }).then(value => {
    //   console.log(value);
    // }).then(value => {
    //   console.log(value);
    // }).catch(reason => {
    //   console.log(reason);
    // })

    // let p1 = new MyPromise((resolve, reject) => {
    //   setTimeout(() => {
    //     resolve('1111')
    //   }, 2000)
    // })

    // let p2 = new MyPromise((resolve, reject) => {
    //   setTimeout(() => {
    //     resolve('2222')
    //   }, 1000)
    // })

    // let p3 = new MyPromise((resolve, reject) => {
    //   // setTimeout(() => {
    //   //     // throw 222
    //   //     // reject(222)
    //   //   }, 1000)
    //   // throw 2222
    //   reject(3333)
    // })

    // MyPromise.all([p1, p2, p3]).then(values => {
    //   console.log(values);
    // }, reason => {
    //   console.log(reason);
    // })

    // MyPromise.race([p1, p2, p3]).then(res => {
    //   console.log(res);
    // }, reason => {
    //   console.log(reason);
    // })

    // p3.then(value => {
    //   console.log(value);
    // }, reason => {
    //   console.log(reason);
    // })

    // let p1 = new MyPromise((resolve, reject) => {
    //   console.log(111);
    //   resolve()
    // })

    // p1.then(value => {
    //   console.log(333);
    // })

    // console.log(222);
  </script>
</body>

</html>